<?
// Verifica se foi passada alguma requisicao
if(!isset($_REQUEST['requisicao']))
{
	exit('Erro '.__LINE__);
}
$requisicao = $_REQUEST['requisicao'];

// Verifica se foi passado o cod_site
if(!isset($_REQUEST['site']))
{
	exit('Erro '.__LINE__);
}
$cod_site = intval($_REQUEST['site']);
define("AW_COD_SITE",$cod_site);

// Verifica se requisicao veio comprimida
if(isset($_REQUEST['compressao']) && $_REQUEST['compressao'] != "")
{
	if($_REQUEST['compressao'] == "gzip")
	{
		$requisicao = gzuncompress($requisicao) or exit('Erro ao descomprimir.');
	}
	else
	{
		exit('Erro '.__LINE__);
	}
}
$requisicao = preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", $requisicao);
$requisicao = stripslashes($requisicao);
$requisicao = unserialize($requisicao) or exit('Erro ao ler requisicao.');

/*
Exemplo: a:1:{i:0;a:3:{s:6:"classe";s:7:"OBSecao";s:6:"funcao";s:5:"obtem";s:10:"parametros";a:2:{i:0;s:0:"";i:1;s:10:"nome_secao";}}}
*/

// Carrega confs e classes
include_once("./includes/top.inc.php");
define("AW_DEBUG", false);

$eval = '$retorno = $'.$requisicao['classe']."->".$requisicao['funcao']."(";
if(isset($requisicao['parametros']) && is_array($requisicao['parametros']))
{
	foreach($requisicao['parametros'] as $paramentro)
	{
		$eval .= "'".$paramentro."', ";
	}
	$eval = substr($eval, 0, -2);
}
$eval .= ");";

eval($eval);
$retorno = serialize($retorno);

if(isset($_REQUEST['compressao']) && $_REQUEST['compressao'] != "")
{
	if($_REQUEST['compressao'] == "gzip")
	{
		$retorno = gzcompress($retorno) or exit('Erro ao comprimir.');
	}
	else
	{
		exit('Erro '.__LINE__);
	}
}
echo(urlencode($retorno));
?>